Transaction processing systems are computer hardware and software systems that support concurrent execution of multiple transaction programs while ensuring preservation of so-called ACID properties comprising Atomicity, Consistency, Isolation and Durability. A transaction program is a specification of operations that are applied against application state, including the order in which the operations must be applied and any concurrency controls that must be exercised in order for the transaction to execute correctly. The most common concurrency control operation is locking, whereby the process corresponding to the transaction program acquires either a shared or exclusive lock on the data it reads or writes. A transaction refers to a collection of operations on the physical and abstract application state, usually represented in a database. A transaction represents the execution of a transaction program. Operations include reading and writing of shared state.
With respect to the ACID properties, atomicity refers to transactions that exhibit an all-or-none behavior, in that a transaction either executes completely or not at all. A transaction that completes is said to have committed; one that is abandoned during execution is said to have been aborted; one that has begun execution but has neither committed nor aborted is said to be in-flight.
Consistency refers to successful completion of a transaction that leaves the application state consistent vis-à-vis any integrity constraints that have been specified.
Isolation, also known as serializability, guarantees that every correct concurrent execution of a stream of transactions corresponds to some total ordering on the transactions that constitute the stream. In that sense, with respect to an executed transaction, the effects of every other transaction in the stream are the same as either having executed strictly before or strictly after it. Strong serializability refers to the degree to which the execution of concurrent transactions is constrained and creates different levels of isolation in transaction processing systems. In the context of the current document, concern is greatest with respect to transaction processing systems that exhibit the strongest forms of isolation, in which the updates made by a transaction are never lost and repeated read operations within a transaction produce the same result.
Durability refers to the property such that once a transaction has committed, its changes to application state survive failures affecting the transaction-processing system.
One challenge with transaction processing systems pertains to reducing the time that is needed for transactions to commit. Accordingly, this invention arose out of concerns associated with providing systems and methods that reduce the time that is needed for transactions to commit.